package com.tmt.im.manager.controller.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.tmt.im.common.enums.AddFriendMode;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * 好友申请信息VO对象。
 * @Description TODO
 * @Author wuyi
 * @Date 2024/8/24 23:18
 * @Version 1.0
 **/
@Getter
@Setter
@Tag(name = "好友申请信息VO对象", description = "好友申请信息VO对象")
public class FriendApplyInfoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = -3636160066845108368L;

    @Schema(name = "id", description = "好友申请ID")
    private Long id;

    @Schema(description = "好友用户ID")
    @JsonProperty("applyUserId")
    private Long friendId;

    @Schema(description = "会员等级")
    private String memberCode;

    @Schema(name = "friendNickname", description = "好友用户的昵称")
    @JsonProperty("name")
    private String friendNickname;

    @Schema(name = "friendAvatar", description = "好友用户头像")
    @JsonProperty("avatar")
    private String friendAvatar;

    @Schema(name = "note", description = "申请时的备注")
    @JsonProperty("leaveMessage")
    private String note;

    @Schema(description = "会员等级")
    private Integer grade;

    @Schema(description = "申请状态")
    @JsonProperty("applyState")
    private int reviewStatus;

    @Schema(name = "groupId", description = "好友将被归入的好友分组")
    private Long groupId;

    @Schema(name = "groupName", description = "好友分组名称")
    private String groupName;

    @Schema(name = "mode", description = "申请好友采用的方式")
    private AddFriendMode mode = AddFriendMode.ID;

    @Schema(name = "modeDescr", description = "申请好友方式的描述")
    private String modeDescr = AddFriendMode.ID.getMsg();

    @Schema(name = "createTime", description = "申请时间")
    private Long createTime;

}
